if 判断句和 else、elif 语法

7,221次阅读

共计 2230 个字符,预计需要花费 6 分钟才能阅读完成。

程序的判断

为了让程序能够在执行时有不同的选择,因此程序语言通常都有判断句的语法,让程序在执行时可以依照所给的条件内容来决定到底要做哪件事情。判断句以人类的语言来看就如同这种句子:

吃早餐
如果今天下雨就带雨伞并穿雨鞋
如果今天没下雨就穿球鞋
出门
工作
回家
睡觉

对于今天下雨到底要不要带伞换鞋,就是一种判断句,由条件「是否下雨」来决定要做什么事情「打伞换鞋」。

接下来介绍 Pyhton 的判断句

if 判断句

if 在英文里的意思是「如果」,所以其实可以很直觉的就直接联想成中文的「如果」,Python 的判断句长的像这样:

if 条件:
成立的话要做的事情

它是由 if 开头,隔一个以上的空白,然后接条件,再接一个冒号,断行后要有固定的缩排,把要做的事情区块挤出来。把它想成中文就是:

如果条件成立的话,就做要做的事情。

缩排

Python 用缩排来区分程序的区块。所谓的缩排,就是指用一定数量的空白,将代码往右挤,形成整齐的巢状结构,这样就很容易看得懂代码,但是在 Pyhton 缩排被拿来当程序判断区块的规则,所以在 Python 里不得不缩排。虽然 Python 没有规定缩排要几个空白,但是最好一整个档案里的缩排都用一定的个数,避免突然用 4 个,另一个地方用 2 个,这样会造成混乱。

逻辑运算

有了判断句之后,还有一个重要的地方,就是条件。想要判断条件就需要用上逻辑运算。逻辑运算有好几种:

==  相等,两边相等时为真
!=  不相等,两边不相等时为真
<  小于,左边小于右边时为真
>  大于,左边大于右边时为真
<=  小于等于,左边小于等于右边时为真
>=  大于等于,左边大于等于右边时为真
or  或,左右两边只要有一个为真时为真
and 且,左右两边都为真时为真
not 否定,右边为真时为假,为假时为真

所谓的「真」就是指成立的意思,假也就是不成立的意思。在 Python 里面有两个字用来表示真和假,分别为 True 和 False,要注意的是大小写都要一样。

以下为 if 判断句以及逻辑运算的几段小示范,每段示范都可以单独测试:

#!/usr/bin/python
# -*- coding: utf-8 -*-

# 例子 A
if 1 + 1 == 2:
    print '如你所见,1+ 1 等于 2。'
    print '在同一缩排里。'
    print '都被视为同样的区块。'
    print '也就是条件成立时会执行的代码区块。'
    print '如果 if 里的加法结果不等于 2,则此段代码不会打印出来。'

    if True:
        print 'Yes, it is true.\n'

a = 10

if a == 10:
    print 'a 等于 10'
    print '在区块里都要一样的缩排长度'

    if a % 2 == 0:
        print 'a 是 2 的倍数'
        print '这一行一样是同一个区块 \n'

# 例子 B
if 10 % 2 == 0 and 10 % 5 == 0:
    print '10 是 2 和 5 的倍数'

a = 10
b = 20

if a < b:
    print 'a 小于 b\n'

# 例子 C
number = 5
guess = int(raw_input(' 已知 number 等于 5,\
输入一个大于 5 或者小于 5 的数字赋予 guess:'))

if number == guess:
    print '是的,number 等于 guess。'

    if True:
        print 'Done.'

if number > guess:
    print '是的,number 大于 guess。'

    if True:
        print 'Done.'

if number < guess:
    print '是的,number 小于 guess。'

    if True:
        print 'Done.'

# 例子 D
number = 10
guess = int(raw_input(' 已知 number 等于 10,\
输入一个大于或者小于 10 的数字赋予 guess:'))

if not number >= guess:
    print 'number「10」并非大于等于你输入的 guess 值「%d」。' % guess

if not number <= guess:
    print 'number「10」并非小于等于你输入的 guess 值「%d」。' % guess

if number == guess:
    print 'number「10」和你输入的值「%d」相等。' % guess

else 语法

有时候,我们除了会讲 如果怎样怎样 ,有时候也会反过来想 那没有的话怎么办。在程序语言里就是 else。如果程序不成立就会跳到 else 区块里去执行。

elif 语法

又有些时候,我们会针对一件事情想很多对策,如果签名的不行,就换下一项继续。elif 在程序语言里就是这样的角色。

将 elif 和 else 联想成中文语义可以是:

如果「if」下雨 就帶雨傘
不然如果「elif」下雪 就帶雪衣
再不然如果「elif」,出太陽 就戴太陽眼鏡
如果都不是的話「else」就躲在家裡

可以参考下面的示范:

#!/usr/bin/python
# -*- coding: utf-8 -*- 

if 10 % 2 == 0 and 10 % 2 == 0:
    print "10 是 2 和 5 的倍数"
else:
    print "10 不是 2 和 5 的倍数"

a = 10
b = 20

if a > b:
    print "a 大于 b"
else:
    print "a 小于等于 b\n"

number = 10
guess = int(raw_input(' 已知 number 为 10,\
为 guess 赋予一个大于或小于 10 的整数:'))

if number > guess:
    print "你输入的值「%d」小于 number「10」" % guess
elif number < guess:
    print "你输入的值「%d」大于 number「10」" % guess
else:
    print "你输入的值「%d」与 number 相同" % guess
全文完
 
西西
📝创作说明:本文由 西西 于2013-05-12发表,共计2230字。
🉑转载说明:本作品采用 “知识共享署名-非商业性使用 4.0 国际许可协议” 进行许可。除特殊说明外,您可以自由的转载和修改,但请务必注明来源且不可用于商业目的。